perm filename LRNMUS.DGL[UP,DOC] blob
sn#294194 filedate 1977-07-08 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 P-1 STEP BY STEP INSTRUCTIONS FOR A BASIC SOUND PROGRAM PAGE 3-1
C00016 00003 ANALOG ASPECTS
C00020 ENDMK
C⊗;
P-1 STEP BY STEP INSTRUCTIONS FOR A BASIC SOUND PROGRAM PAGE 3-1
ABSTRACT: This file lists a procedure whereby one can interactively
set up and hear a sound directly in NEWMUS. Its purpose is basicly
didactic and it is not recommended that you do more than familiarize
yourself with the interactive possibilities of writing instruments,
etc. directly into NEWMUS. You should then learn how to set up files
to contain all the information NEWMUS needs, since files can be
edited, console additions to NEWMUS cannot.
NOTE: The name of the music compiler for 220 is called MUS14. It is
a version of a program called NEWMUS. Hence, in this file, where it
says NEWMUS, MUS14 is meant. The only places where the distinction is
necessary have been changed to conform to this.
NOTE: Statements at extreme left margin are your input to the system.
Statements in quotes at the left margin are computer responses to
your actions.
**********
GENERAL OMNIBUS ERROR RECOVERY FORMULA:
This won't make any sense yet, but just remember it for later:
If something goes wrong after you have done the R NEWMUS command
and are inside NEWMUS (such as an error message, or the
computer appears to be stuck by what you've done) you can
save all thatyou have successfully loaded and continue from
where things got wierd by doing the following: Type
<call>
That's the key in the upper right hand corner.
"↑C"
.
The period means you are now back to the monitor level
where you were
before you typed R NEWMUS. Nkw to recover, type
S<cr>
That is, type S then the <return_key>.
"INPUT"
Now you are back to the first computer response after
the R NEWMUS command, buteverything the computer
accepted from you up to the point you goofed is still
there (such as The arrays you declaired, the
instrument, etc.)
**********
First it is necessary to connect the digital to analog
converter (DAC or DA) to a loudspeaker, either the four track
facility In the music room or the monitor speaker attached to
your console. The easiest thing is to hook up the console
speakerfor which you type:
<break>3U
This will not show up on the console.
You could also have typed
<escape>3U
to select the DAC but you would also allow paging interruption.
There is a volume knob attached to the speaker box, turn it to
half-way. Type:
R NEWMUS<cr>
NEWMUS is a music compiler which will take all the following
information and from it compute a waveform and play it.
"INPUT?"
When NEWMUS says this, it is expecting a file name. We're
not dealing with that but when you learn to set up files,
it is to this question that you would type the file name.
so type:
<cr>
(that means carriage return).
NEWMUS will type:
">"
O.k., now NEWMUS will accept input from your console.
Type:
ARRAY F2(512);<cr>
"ARRAY-F2"
">"
This creates an array of 512 locations numbered from 0
to 511 in which we will store the shape of a wave used
in our basic instrument. The array is called F2. F1
is already supplied by NEWMUS and is loaded
automatically with numbers representing a sine wave.
The name F2 ("function" 2) is arbitrary.
This terminates the list of declarations required for our
purposes. There could also be other things here such as a
VARIABLE statement, which just says that such-and-such a
letter or word, etc. exists as a location in the memory that
can store a value.
Now to specify the shape of the array, type:
SEG(F2);<cr>
You will be put into a graphic representational
mode. Don't be impatient, it may take awhile.
Type: (Please note the necessary spaces in the following)
0 0 1 10 0 100<CR>
and note the result. The first number is the amplitude
(y axis), the second is the x axis increment at which this
amplitude will be. Succeeding pairs of numbers just continue
this process until the number 100 is reached.
After you type the last <cr>, the function will display.
To end the display type:
0<cr>
">"
If you want to see what the function looks like again, type:
SEE(F2);<cr>
When you're through, type:
0<cr>
F1 was supplied by NEWMUS and was constructed by SYNTH,
which operates like SEG. You can change F1 if you like, type:
SYNTH(F1);<cr>
Again, you are in graphical representation. This time
the format is different. Synth creates sine waves. Type:
2 1 <cr>
After a second or so a sine wave with two periods will
display. Of the two numbers you typed, the first specified
the frequency, the second the amplitude. To terminate this
mode type:
999<cr>
But lets reset F1 to a sine wave for the next example, so
go back and
SYNTH(F1);<cr>
and type to the graphics:
1 1 999<cr>
It will display a single period sine wave briefly, then
">"
Next comes the instrument definition. Type:
INSTRUMENT FUT; OUTA←OSCIL(2000,P3*MAG,F1); END;
<Note:to type the left arrow,depress the <TOP> key,
Then the "J" key,on "top" of which lives the left arrow.>
"INSTRUMENT-FUT"
That tells you you did everything o.k. and that FUT
exists as a valid instrument. If NEWMUS detected an
error, it will tell you approximately where and what
it is. Unfortunately, since you are not putting this
in from a file you must retype the whole instrument
deffinition.
WHAT IT MEANS:
An instrument deffinition is delimited by the "INSTRUMENT<name>;"
statement, and an "END;" statement.
"OSCIL(<varaible>,<variable>,<array_name>);" is called a "Unit
Generator" and is a special procedure which actually generates
the numbers which represent to the DAC what the waveform is.
The variables OSCIL expects are firstly, the amplitude (scaled
arbitrarily up to a maximum value of 131072), and secondly
the frequency of the note to be played. The third thing it wants
is the array that specifies the waveshape.
Where it says "P3" in the OSCIL statement, that tells OSCIL that
the variable (or number) it is looking for is actually in the
PLAY statement, in the third field after the name of the instrument.
In this case, the number will be 440, to play the pitch "A".
The PLAY statement is described below.
MAG is the magic number specifying the ratio of 512/sample rate.
The length of stored functions in NEWMUS is 512 samples long. The
ratio (512/sampling rate) establishes a base frequency which when
multiplied by the desired frequency number (in this case,P3) will
sample the 512 increment long function at intervals which will
produce the desired frequency.
OUTA is a special variable that stores the value of each number
the instrument writes, and sends it to channel A, or 1. There
are three others, OUTB,OUTC,OUTD for the other channels.
Now we are ready to tell NEWMUS to compute a waveform. Type:
PLAY DA:1.0; FUT 0 1 440; FINISH;
Please note that following the DA is a colon. The mark
between the "1.0" is a period.
It is possilbe that you will get a message like:
"XGP in use. Wait for it to finish?"
If this happens, type:
Y<cr>
and wait for it. Meanwhile:
Question #2001: what does the XGP have to do with playing
sounds from NEWMUS? Answer, they both rely upon the PDP-6
which ain't big enough for both of them.
Now the computer is gobbling up your data and spewing out numbers
into an output file. It should be left alone. This sound seldom
takes more than a minute to compute. Longer sounds take
proportionally more time. You should have either fired up the four
track setup, or attached your monitor speaker
to the DA, because suddenly, when you least expect it, a sound well
LEAP! out at you.
If you wish to hear it again, type:
∀ <alt>P<cr><alt> When you type the second <alt>, you get the sound again.
To make the sound louder, turn the volume knob to the right.
To leave the NEWMUS environment, type:
<alt> EXIT
"EXIT"
"↑C"
And you are back to the monitor.
ANALOG ASPECTS
Music room:
THE FLOW:
SONY(inside cabinet)
↓
COMPUTER→DAC→DOLBY→SCULLY→ROUTING_BOX→POWER_AMPS→SPEAKERS→ETC.
EDISON: Master power switch is at the bottom of the outlet mounted on
the side of the steel cabinet behind the Scully. The DAC is not
connected to this plug-bay and is always left on. PLEASE REMEMBER TO
TURN THE SYSTEM OFF WHEN YOU ARE THROUGH.
Find the silver ROUTING BOX (located behind the Scully 280, and
mounted on the outside of the steel cabinet) There are four nobs on
it that are covered with masking tape. But on the far side of it
there is a switch, which if down, connects the Scully, if up, the
Sony inside the cabinet. The Scully Line Inputs are connected to the
DAC. So to hear the DAC, the Scully must be in record mode, with
volume up for channels outputing. Set Record level to about 5, Input
to Line, playback should be set to CAL. Put Dolby in Rec mode.
MONITOR SPEAKERS
If you are not working in the music room, you can switch the TTY
audio channel to channel 1 of the D/A by typing <BREAK> 3U (See Audio
Switch Control, 2.9, Monitor Command Manual). <BREAK>4U will select
channel B. If this switch has been changed, find out what the new
switch is in either IIIKEY[UP,DOC] OR DDKEY[UP,DOC].
BUT the D/A will also
output to the music room,and if there are people using the D/A there,
they will be clobered by your sounds. So, send them a message to
expect your sounds, as it is quite unnerving to be jolted out of
meditation by another's static. See MAIL in Monitor Command. Ttys 24
and 45 are the ones in the music room.
If you want to move your project to the music room to play your
sounds, type:
AL(ias) <your_prj,your_prg><cr>
to alias your current job to a tty in the music room.
AL <cr> returns the tty toits previous user, if any.
Or,
DET(atch) your job from your old console, move to an unused tty in
the music room and
ATTACH <same_job_#> [prj,prg] <cr>
You are now attached to the new tty.